-- LUA脚本：校验并添加关系

local key = KEYS[1] -- 操作的redis key
local followUserId = ARGV[1] -- 关注的用户id
local timestamp = ARGV[2] -- 时间戳

local exists = redis.call('EXISTS',key)
if exists == 0 then
    return -1
end

-- 校验关注人数是否上限（是否达到1000）
local size = redis.call('ZCARD',key)
if size >= 1000 then
    return -2
end

-- 校验目标用户是否已经关注
if redis.call('ZSCORE',key,followUserId) then
    return -3
end

-- 添加关注
redis.call('ZADD',key,timestamp,followUserId)
return 0